// packageCommunity/pages/noticeDetail/index.js
import BasePage from '../../../js/common/base-page'
import{comments} from "../../../js/modules/mall.js" 
import authorize from '../../../js/modules/authorize.js'
import {api,util,dialog, storage} from '../../../js/util'
import {pagesInfo} from '../../../js/router';
import {config} from '../../../js/modules/gloab'
const app = getApp()

BasePage({
  validateLogin: false,
  /**
   * 页面的初始数据
   */
  data: {
    pageKey:"notDetail",
    noticeId:'',
    noticeDetail:{},
    commentList:[],
    enableOss: api.enableOss,
    imgDomain: api.imgDomain,
    isOpen:false,
    // show:false,
    currentNum:0,
    replayCon:'',
    receiveNum:30,
    tempFilePath:'',
    canvasImg:false,
    canvasId:'myCanvas'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options,'====1');
    this.setData({
      noticeId:options.id
    })
    this.getWholesaleConfig()
  },
    /**
   * 获取配置信息
   */
  getWholesaleConfig() {
    var that = this;
    var fkid = app.dns.proprietorId;
    var fkflag = app.dns.proprietor;
    config.getWholesaleConfigs(
      fkid,
      fkflag,
      "Wholesale",
      function(model) {
        if (model.NoLoginShowInteraction == false) {
          if (!authorize.isLogin('store')) {
            authorize.redirect('store')
            return
          }
        }
        that.setData({
          NoLoginShowInteraction: model.NoLoginShowInteraction
        })
        that.getDetail();
      });
  },
  getDetail(){
    var that = this;
    var data = {Id:this.data.noticeId};
    comments.getPostDetail(data,function(content){
      if(content.Success){
        var data = content.Content;
        try{
          //解析京东外部链接style里面的背景图
          util.linkParseImg(data.Content,(intro)=>{
            let content = util.decoratePicSrc(intro, that.data.imgDomain);
            content = content.replace(/()+/ig, "\n")
            that.setData({
              richtext_content: content
            })
          });
        }catch (e){}
        // data.Content = data.Content.replace(/<[^>]+>/g, "").replace(/()+/ig, "\n")
        that.setData({
          noticeDetail:data 
        })
        //浏览帖子
        that.postViews();
        //评论列表
        that.getCommontList();
        //章
        if(data.Offcial == 1){
          that.noticeCanvas(data);
        }
        
      }else{
        util.tips(content.Message);
      }
    })
  },
  /**
   * 累加帖子浏览量
  */
  postViews:function(){
    var data = {InteractionId:this.data.noticeId}
    comments.getPostViews(data,function(content){})
  },
   /**
    * 评论列表
    */
   getCommontList:function(id){
    var that = this;
    var data = {InteractionId:that.data.noticeId}
    comments.getPostCommentList(data,function(content){
      if(content.Success){
        let storeInfo = authorize.getEntity();
        var data = content.Content.data;
        for(var i=0;i<data.length;i++){
          if((data[i].FKFlag == storeInfo.fkFlag && data[i].ManagerId == storeInfo.manager.ManagerId) && data[i].IsAuthority){
            data[i].userDel = true;
          }else{
            data[i].userDel = false;
          }
        }
        that.setData({
          commentList:data
        })
      }else{
        // 朋友圈单页模式进入此页面，不提示跳转登录
        let appLaunchData = app.globalData.appLaunchData || {}
        if (appLaunchData.scene == 1154) {
          return
        }
        // 无需登录则不提示跳转
        if (that.data.NoLoginShowInteraction == true) {
          return
        }
        util.alert(content.Message);
      }
    })
  },
  // 送达
  bindReceiver:function(){
    this.setData({
      isOpen:!this.data.isOpen
    })
  },
  //留言
  bindMessage:function(e){
    var that = this;
    if (!authorize.isLogin('store')) {
      authorize.redirect('store')
      return
    }
    dialog.showModal(that, 'showModalStatus')
    // this.setData({
    //   show:true
    // })
  },
  hideModal(){
    dialog.hideModal(this, 'showModalStatus')
  },
  iptCon:function(e){
    let value = e.detail.value;
    this.setData({
      replayCon:value,
      currentNum:value.length
    })
  },
  //发布
  bindReply:function(){
    var that = this;
    if(!that.data.replayCon){
      util.tips('请输入内容');
      return;
    }
    var data = {
      InteractionId:that.data.noticeId,//帖子ID
      Content:that.data.replayCon//评论内容
    };
    that.commentReplt(data);
  },
  submitComment:function(){
    var that = this;
    var data = {
      InteractionId:that.data.noticeId,//帖子ID
      Content:'收到'//评论内容
    };
    if(that.data.noticeDetail.IsSign==1)return;
    that.commentReplt(data,1);
  },
  commentReplt(data,num){
    var that = this;
    if(num==1){
      that.setData({receiveNum:40})
    }
    comments.getAddComment(data,function(content){
      if(!content.Success){
        util.tips(content.Message);
        dialog.hideModal(that, 'showModalStatus')
      }else{
        dialog.hideModal(that, 'showModalStatus')
        that.setData({receiveNum:30,'noticeDetail.IsSign':1,replayCon:'',currentNum:0})
        that.getCommontList();
      }
    })
  },
  // 章
  noticeCanvas(data){
    var that = this;
    var width = 170/2;
    var height = 170/2;
    //创建canvas绘图上下文
    var ctx = wx.createCanvasContext('myCanvas',that);
    //印章的圆形边框
    ctx.beginPath();
    ctx.setLineWidth(3);  // 设置线条的宽度
    ctx.setStrokeStyle('red');  // 设置边框颜色
    ctx.arc(width, height, 80, 0, Math.PI * 2);  // 画一条弧线
    ctx.stroke(); // 画出当前路径的边框，stroke()描绘的的路径是从 beginPath() 开始计算
    ctx.save(); // 保存当前的绘图上下文

    //绘制印章名称
    ctx.font = 'normal normal 400 12px arial';  // 名称文字大小
    ctx.setTextBaseline('middle');//设置文本的垂直对齐方式
    ctx.setTextAlign('center'); //设置文本的水平对对齐方式
    ctx.setLineWidth(1);  // 设置线条的宽度
    ctx.setFillStyle('red');  // 设置填充色
    ctx.fillText(data.Publisher, width, height + 44);  // 在画布上绘制被填充的文本

    // 画五角星
    that.create5star(ctx, width, height, 14, "#f00", 0);

    data.AddTime = util.getDateSt(data.AddTime,0,'date');
    // 绘制印章时间   
    ctx.font = "normal normal 400 12px arial"
    ctx.setTextBaseline('middle');//设置文本的垂直对齐方式
    ctx.setTextAlign('center'); //设置文本的水平对对齐方式
    ctx.setLineWidth(1);  // 设置线条的宽度
    ctx.setFillStyle('red');  // 设置填充色
    ctx.fillText(data.AddTime, width, height + 60);

    //绘制印章单位  
    ctx.translate(width+2, height);// 平移原点到中心点,  
    ctx.font = 'normal normal 400 18px arial'  // 单位文字大小
    var count = data.CompanyName.length;// 字数   
    var angle = 4 * Math.PI / (4 * (count - 1));// 字间角度   
    var chars = data.CompanyName.split("");
    var c;
    for (var i = 0; i < count; i++) {
      c = chars[i];// 需要绘制的字符   
      if (i == 0)
        // 整个章顺时针旋转150度
        ctx.rotate(5 * Math.PI / 5);
      else
        ctx.rotate(angle);
      ctx.save();
      ctx.translate(70, 0);// 平移到此位置,此时字和x轴垂直，第一个参数是与圆外边的距离，越大距离越近   
      ctx.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴   
      ctx.fillText(c, 0, 5);// 此点为字的中心点   
      ctx.restore();
    }
    ctx.restore();  // 恢复之前保存的绘图上下文
    // 6.将之前在绘图上下文中的描述（路径、变形、样式）画到 canvas 中
    ctx.draw();
    // 7.把当前画布的内容导出生成图片，并返回文件路径
    
    ctx.draw(true, 
      setTimeout(()=>{
        wx.canvasToTempFilePath({
          canvasId:'myCanvas',
          success: function (res) {
            var tempFilePath = res.tempFilePath;
            console.log(tempFilePath);
            that.setData({
              tempFilePath:tempFilePath,
              canvasImg:true
            })
          },
          fail: function (res) {
            console.log(res);
          }
        },that)
      }, 500)
    )
    
  },
  create5star: function (ctx, sx, sy, radius, color, rotato) {
    ctx.save(); // 保存当前的绘图上下文
    ctx.setFillStyle(color);  // 设置填充色
    ctx.translate(sx, sy);  // 移动坐标原点到中心点,此时x轴水平向右为正,y轴垂直向下为正
    ctx.rotate(Math.PI + rotato); // 顺时针旋转180度,此时x轴垂直向上为正,y轴水平向左为正
    ctx.beginPath();  // 创建路径  
    var dig = Math.PI / 5 * 4;
    // 画法,五角星的连接点都在半径为30的圆周上
    for (var i = 0; i < 5; i++) {// 画五角星的五条边  
      var x = Math.sin(i * dig);
      var y = Math.cos(i * dig);
      ctx.lineTo(x * radius, y * radius);
    }
    ctx.closePath();  // 关闭路径
    ctx.stroke(); // 画出当前路径的边框，stroke()描绘的的路径是从 beginPath() 开始计算
    ctx.fill(); // 对当前路径中的内容进行填充
    ctx.restore();  // 恢复之前保存的绘图上下文
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    var that = this;
    let {imgDomain,noticeDetail} = that.data;
    let path = pagesInfo.notDetail.url + `?id=${noticeDetail.Id}`;
    if (res.from === 'button') {
      // console.log(res.target)
    }
    return {
      title: noticeDetail.CompanyName,
      imageUrl: '',
      path: path
    }
  },
  /**
   * 分享到朋友圈
   */
  onShareTimeline () {
    var that = this
    let {
      noticeDetail
    } = that.data;
    let query = `id=${noticeDetail.Id}`
    return {
      title: noticeDetail.CompanyName || '',
      query
    }
  },
  bindDel(e){
    var that = this;
    var id = e.currentTarget.dataset.id;
    var data = {CommentId:id};
    var list = this.data.commentList;
    comments.getCommentRecord(data,function(content){
      if(content.Success){
        for (var i = 0; i < list.length; i++) {
          if (list[i].Id == id){
            list.splice(i, 1);
          }
        }
        that.setData({
          commentList:list
        })
        util.tips('删除评论成功');
        // console.log(that.data.CommentList,'---删除');
      }else{
        util.alert(content.Message);
      }
    })
  },
})